using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("TelemetryWatcher")]
	public class TelemetryWatcher : MonoClass
	{
		public static List<TelemetryWatcherWatchType> s_currentlyWatching => MonoClass.smethod_7<Class270<TelemetryWatcherWatchType>>(TritonHs.MainAssemblyPath, "", "TelemetryWatcher", "s_currentlyWatching")?.method_25();

		public static object s_watchLock => MonoClass.smethod_7<object>(TritonHs.MainAssemblyPath, "", "TelemetryWatcher", "s_watchLock");

		public TelemetryWatcher(IntPtr address, string className)
			: base(address, className)
		{
		}

		public TelemetryWatcher(IntPtr address)
			: this(address, "TelemetryWatcher")
		{
		}

		public static void WatchFor(TelemetryWatcherWatchType watchType)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "TelemetryWatcher", "WatchFor", watchType);
		}

		public static void StopWatchingFor(TelemetryWatcherWatchType watchType)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "TelemetryWatcher", "StopWatchingFor", watchType);
		}

		public static void OnScenePreloadedExclusiveWatch(SceneMgr.Mode nextMode, SceneMgr.Mode targetMode, TelemetryWatcherWatchType watchType)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "TelemetryWatcher", "OnScenePreloadedExclusiveWatch", nextMode, targetMode, watchType);
		}

		public static void WatchForStoreVisitFromPackOpening()
		{
			MonoClass.smethod_17(TritonHs.MainAssemblyPath, "", "TelemetryWatcher", "WatchForStoreVisitFromPackOpening");
		}

		public static void StopWatchingForStoreVisitFromPackOpening()
		{
			MonoClass.smethod_17(TritonHs.MainAssemblyPath, "", "TelemetryWatcher", "StopWatchingForStoreVisitFromPackOpening");
		}

		public static void OnBoxButtonPressStoreWatcher(Box.ButtonType type, object userData)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "TelemetryWatcher", "OnBoxButtonPressStoreWatcher", type, userData);
		}

		public static void OnScenePreloadedStoreWatcher(SceneMgr.Mode prevMode, SceneMgr.Mode nextMode, object userData)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "TelemetryWatcher", "OnScenePreloadedStoreWatcher", prevMode, nextMode, userData);
		}

		public static void WatchForCollectionVisitFromDeckPicker()
		{
			MonoClass.smethod_17(TritonHs.MainAssemblyPath, "", "TelemetryWatcher", "WatchForCollectionVisitFromDeckPicker");
		}

		public static void StopWatchingForCollectionVisitFromDeckPicker()
		{
			MonoClass.smethod_17(TritonHs.MainAssemblyPath, "", "TelemetryWatcher", "StopWatchingForCollectionVisitFromDeckPicker");
		}

		public static void OnBoxButtonPressCollectionWatcher(Box.ButtonType type, object userData)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "TelemetryWatcher", "OnBoxButtonPressCollectionWatcher", type, userData);
		}

		public static void OnScenePreLoadedCollectionWatcher(SceneMgr.Mode prevMode, SceneMgr.Mode nextMode, object userData)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "TelemetryWatcher", "OnScenePreLoadedCollectionWatcher", prevMode, nextMode, userData);
		}
	}
}
